<?php
include('./model/vytvor.php');
class vytvor extends maincontroller{
	var $kto;
	
	public function __construct($kto) {
        if ($kto == "sutazna_kategoria" or $kto == "typ_kategoria_hodnotenia" or $kto == "sutaziaci" or $kto == "sutaz" or $kto == "sutazne_kolo") {
            $this->kto = $kto;
        } else {
            throw new Exception("vytvor: zly vstup na vytvorenie");
        }
    }
	
	private function vytvor($vytvormeno, $popis){
		
		$check = true;
		$chybova_hlaska = "";
		
	
		if (!$this->nazov_check($vytvormeno)) {
            $chybova_hlaska .= " Nesprávne vyplnené meno.<br />\n";
            $check = false;
        }
        
        if (!$this->long_text_check($popis))  {
            $chybova_hlaska .= " Nesprávne vyplnený popis.<br />\n";
            $check_registracie = false;
        }
		if($check) {
			$mvytvor = New mvytvor($this->kto);
			if ($mvytvor->kotrola($vytvormeno)or $this->kto == "sutazne_kolo"){
				$mvytvor->vytvor($vytvormeno,$popis);
				return 'Vytvorenie prebehlo v poriadku.';
			} else return "Vytvorenie zlyhalo! <br />Vytvarany objekt už existuje.";
        }
        else {
            return $chybova_hlaska;	
        }        
	}
	
	private function uprav($menouprav, $popisuprav){
		
		$check = true;
		$chybova_hlaska = "";
		
	
		if (!$this->nazov_check($menouprav)) {
            $chybova_hlaska .= " Nesprávne vyplnené meno.<br />\n";
            $check = false;
        }
        
        if (!$this->long_text_check($popisuprav))  {
            $chybova_hlaska .= " Nesprávne vyplnený popis.<br />\n";
            $check_registracie = false;
        }
		if($check) {
			$muprav = New mvytvor($this->kto);
			if ($muprav->kotrolauprav($_SESSION["iduprav"])){ 
				$muprav->uprav($menouprav,$popisuprav, $_SESSION["iduprav"]);
				return 'Upravenie prebehlo v poriadku.';
			} else return "Upravenie zlyhalo! <br />Upravovany objekt sa už používa. <br /> Musíte vytvoriť nový.";
        }
        else {
            return $chybova_hlaska;	
        }        
	}
	
	private function nacitaj($iduprav){
		$muprav = New mvytvor($this->kto);
		return $muprav->nacitaj($iduprav);
	
	}
	
	public function handle($action){
		if ($action=="vytvor"){
			switch ($this->kto){
				case "sutaz":
					$link='<a href="/sutaz/vypis">Späť na súťaže</a>';
					break;
				case "typ_kategoria_hodnotenia":
					$link='<a href="/kategoriahodnotenia/vypis">Späť na kategórie hodnotenia</a>';//todo link
					break;
				case "sutaziaci":
					$link='<a href="/">Späť na súťažiacich</a>';//todo link
					break;
				case "sutazna_kategoria":
					$link='<a href="/sutaznakategoria/vypis">Späť na kategórie</a>';
					break;
				case 'sutazne_kolo':
					$link='<a href="/sutaznekolo/vypis">Späť na kolá</a>';
					break;
			}
			if (isset($_POST['vytvormeno']) && isset($_POST['vytvor'])) {
					$vytvorene = $this->vytvor($_POST['vytvormeno'], $_POST['vytvorpopis']); 
					if ($vytvorene=="Vytvorenie prebehlo v poriadku."){					// ak je ok
						if ($this->kto=='sutaz'){
							$poslednasutaz = New mvytvor($this->kto);
							$posledna=$poslednasutaz->poslednasutaz();
							return $this->redirect("sutaz/".$posledna->id."");
						} else {
							return view::load('vytvor', array('controller' => $this->kto,'info' => $vytvorene, 'link'=>$link ));
						}
					} else {				// ak je nejaka chyba 	
						return view::load('vytvor',  $this->copy_post_data(array('vytvormeno', 'vytvorpopis'), array('controller' => $this->kto,'info' => $vytvorene, 'link'=>$link )));
					}
			} else {
				return view::load('vytvor', array('controller' => $this->kto, 'link'=>$link ));	
			}
		} else {
		
			if ($action=="uprav"){
				if (isset($_POST['menouprav']) && isset($_POST['uprav'])){
					$update= $this->uprav($_POST['menouprav'], $_POST['popisuprav']);
					if ($update=="Upravenie prebehlo v poriadku."){ // ak je ok
						switch ($this->kto){
						case "sutaz":
							return $this->redirect("/sutaz/".$_SESSION["idupravsu"]."");
							break;
						case "typ_kategoria_hodnotenia":
							return $this->redirect('/kategoriahodnotenia/vypis');
							break;
						case "sutaziaci":
							return view::load('uprav', array('controller' => $this->kto,'info' => $update ));//todo
							break;
						case "sutazna_kategoria":
							return $this->redirect('/sutaznakategoria/vypis');
							break;
						case "sutazne_kolo":
							return $this->redirect('/sutaznekolo/vypis');
							break;
						
						}
					} else {				// ak je nejaka chyba 	
						return view::load('uprav',  $this->copy_post_data(array('menouprav', 'popisuprav'), array('controller' => $this->kto,'info' => $update )));
					}
				} else {
					unset($_SESSION["iduprav"]);
					switch ($this->kto){
						case "sutaz":
							$_SESSION["iduprav"]=$_SESSION["idupravsu"];
							break;
						case "typ_kategoria_hodnotenia":
							$_SESSION["iduprav"]=$_SESSION["idupravkathod"];
							break;
						case "sutaziaci":
							$_SESSION["iduprav"]=$_SESSION["idupravsut"];
							break;
						case "sutazna_kategoria":
							$_SESSION["iduprav"]=$_SESSION["idupravkat"];
							break;
						case "sutazne_kolo":
							$_SESSION["iduprav"]=$_SESSION["idupravkolo"];
							break;
						default:
							throw new Exception("vytvor: zly vstup na vytvorenie");
					}
					$poleudajov = $this->nacitaj($_SESSION["iduprav"]);
					if($this->kto =='sutazne_kolo') {
						return view::load('uprav', array('controller' => $this->kto, 'menouprav'=> $poleudajov->meno, 'popisuprav'=> $poleudajov->popis ));
					} else {
						return view::load('uprav', array('controller' => $this->kto, 'menouprav'=> $poleudajov->Meno, 'popisuprav'=> $poleudajov->Popis ));
					}
				}
			} else {
				return view::load('error404', array()); 
			}
		}
	}
}
?>